package pe.gob.servir.apps.censodirectivo.ejb.dao;

import java.util.List;

import javax.ejb.Local;

import pe.gob.servir.apps.censodirectivo.common.dao.BaseDAO;
import pe.gob.servir.apps.censodirectivo.excepcion.DAOExcepcion;
import pe.gob.servir.apps.censodirectivo.model.bean.BusquedaDirectivo;
import pe.gob.servir.apps.censodirectivo.model.bean.DirectivoPublico;
import pe.gob.servir.apps.censodirectivo.model.bean.ExperienciaLaboral;
import pe.gob.servir.apps.censodirectivo.model.bean.MensajeRespuesta;
import pe.gob.servir.apps.censodirectivo.persistence.entity.TblDirectivoPublico;

@Local
public interface DirectivoPublicoDAOLocal extends BaseDAO<TblDirectivoPublico> {
	MensajeRespuesta actualizaDirectivoPublico(DirectivoPublico directivoPublico)
			throws DAOExcepcion;

	MensajeRespuesta registarDirectivoPublico(DirectivoPublico directivoPublico)
			throws DAOExcepcion;
	
	MensajeRespuesta registrarExperienciaLaboral(final ExperienciaLaboral experienciaLaboral) throws DAOExcepcion;

	List<DirectivoPublico> filtrarListaDirectivoPublico(BusquedaDirectivo busquedaDirectivo) throws DAOExcepcion;
	
	MensajeRespuesta ampliarCensoDirectivoPublico(DirectivoPublico directivoPublico, BusquedaDirectivo busquedaDirectivo, String tipoAmpliacion) throws DAOExcepcion;
	
	MensajeRespuesta habilitarDirectivosPublicos(DirectivoPublico directivoPublico, BusquedaDirectivo busquedaDirectivo) throws DAOExcepcion;
	
	List<DirectivoPublico> buscarDirectivoPorId(long id)
			throws DAOExcepcion;

	MensajeRespuesta activarInactivarDirectivo(long idDirectivoPublico,
			String tipo) throws DAOExcepcion;

	MensajeRespuesta actualizarDeclaracion(long idDirectivoPublico)
			throws DAOExcepcion;

	MensajeRespuesta calculaPorcentajeAvance(DirectivoPublico directivoPublico)
			throws DAOExcepcion;

}